﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace VoiceAI.VoiceResponse
{
    public enum WeatherCondition
    {
        Sunny,                     //晴
        MostlySunny,               //大部晴朗
        Cloudy,                    //多云
        PartlyCloudy,              //少云
        Overcast,                  //阴
        Shower,                    //阵雨
        PartialShower,             //局部阵雨
        SmallShower,               //小阵雨
        StrongShower,              //强阵雨
        SnowShower,                //阵雪
        SmallSnowShower,           //小阵雪
        Fog,                       //雾
        FrozenFog,                 //冻雾
        Sandstorm,                 //沙尘暴
        FloatingDust,              //浮尘
        DustyWind,                 //尘卷风
        BlowingSand,               //扬沙
        StrongSandstorm,           //强沙尘暴
        Haze,                      //霾
        Thundershower,             //雷阵雨
        Raiden,                    //雷电
        Thunderstorm,              //雷暴
        ThunderShower2,            //雷阵雨伴
        Hail,                      //冰雹
        IceNeedle,                 //冰针
        IceParticle,               //冰粒
        Sleet,                     //雨夹雪
        LightRain,                 //小雨
        ModerateRain,              //中雨
        HeavyRain,                 //大雨
        Rainstorm,                 //暴雨
        HeavyRainstorm,            //大暴雨
        ExtraHeavyRainstorm,       //特大暴雨
        LightSnow,                 //小雪
        ModerateSnow,              //中雪
        HeavySnow,                 //大雪
        Blizzard,                  //暴雪
        FreezingRain,              //冻雨
        Snow,                      //雪
        Rain,                      //雨
        LightToModerateRain,       //小到中雨
        ModerateToHeavyRain,       //中到大雨
        HeavyRainToRainStorm,      //大到暴雨
        SmallToMediumSnow,         //小到中雪
        SunnyNight,                //晴_晚上
        MostlySunnyNight,          //大部晴朗_晚上
        CloudyNight,               //多云_晚上
        PartlyCloudyNight,         //少云_晚上
        OvercastNight,             //阴_晚上
        ShowerNight,               //阵雨_晚上
        PartialShowerNight,        //局部阵雨_晚上
        SmallShowerNight,          //小阵雨_晚上
        StrongShowerNight,         //强阵雨_晚上
        SnowShowerNight,           //阵雪_晚上
        SmallSnowShowerNight,      //小阵雪_晚上
        FogNight,                  //雾_晚上
        FrozenFogNight,            //冻雾_晚上
        SandstormNight,            //沙尘暴_晚上
        FloatingDustNight,         //浮尘_晚上
        DustyWindNight,            //尘卷风_晚上
        BlowingSandNight,          //扬沙_晚上
        StrongSandstormNight,      //强沙尘暴_晚上
        HazeNight,                 //霾_晚上
        ThundershowerNight,        //雷阵雨_晚上
        RaidenNight,               //雷电_晚上
        ThunderstormNight,         //雷暴_晚上
        ThunderShower2Night,       //雷阵雨伴_晚上
        HailNight,                 //冰雹_晚上
        IceNeedleNight,            //冰针_晚上
        IceGrainNight,             //冰粒_晚上
        SleetNight,                //雨夹雪_晚上
        LightRainNight,            //小雨_晚上
        ModerateRainNight,         //中雨_晚上
        HeavyRainNight,            //大雨_晚上
        RainstormNight,            //暴雨_晚上
        HeavyRainstormNight,       //大暴雨_晚上
        ExtremelyHeavyRainNight,   //特大暴雨_晚上
        LightSnowNight,            //小雪_晚上
        ModerateSnowNight,         //中雪_晚上
        HeavySnowNight,            //大雪_晚上
        BlizzardNight,             //暴雪_晚上
        FreezingRainnight,         //冻雨_晚上
        SnowNight,                 //雪_晚上
        RainNight,                 //雨_晚上
        SmallToModerateRainNight,  //小到中雨_晚上
        ModerateToHeavyRainNight,  //中到大雨_晚上
        HeavyRainToRainStormNight, //大到暴雨_晚上
        SmallToMediumSnowNight,    //小到中雪_晚上
        Error,                     //错误

    }

    public interface IWeatherData
    {
        WeatherCondition Condition { get; }
        string Date { get; }
        string MaxTemperature { get; }
        string MinTemperature { get; }
        string Temperature { get; }
        string PM25 { get; }
        string Quality { get; }
        string WindDirection { get; }
        string WindLevel { get; }
    }

    public interface IWeatherResponseData : IResponseData
    {
        string Location { get;}
        IReadOnlyList<IWeatherData> WeatherInfoList { get; }
        int CurrentInfo { get; }
    }
}
